//
//  XLPlayerItem.h
//  FFMpegKitDemo
//
//  Created by ilongge on 2023/8/2.
//

#import <Foundation/Foundation.h>

@class AVURLAsset;

@interface XLPlayerItem : NSObject
/**
 * 类方法
 * Class Method
 * 初始化播放资源，若初始化失败，可读取error值。
 * Initialize the item. If initialization failed, read error.
 * @param  URL 资源链接 / Resource URL
 * @param  error 错误 / Error
 * @return 播放资源实例 / XLPlayerItem Instance
 */
+ (instancetype)playerItemWithURL:(NSURL *)URL error:(NSError **)error;
/**
 * 类方法
 * Class Method
 * 初始化播放资源，若初始化失败，可读取error值。
 * Initialize the item. If initialization failed, read error.
 * @param  asset 资源对象 / Resource asset
 * @param  error 错误 / Error
 * @return 播放资源实例 / XLPlayerItem Instance
 */
+ (instancetype)playerItemWithAsset:(AVURLAsset *)asset error:(NSError **)error;
/**
 * 类方法
 * Instance Method
 * 初始化播放资源，若初始化失败，可读取error值。
 * Initialize the item. If initialization failed, read error.
 * @param  URL 资源链接 / Resource URL
 * @param  error 错误 / Error
 * @return 播放资源实例 / XLPlayerItem Instance
 */
- (instancetype)initWithURL:(NSURL *)URL error:(NSError **)error;
/**
 * 类方法
 * Instance Method
 * 初始化播放资源，若初始化失败，可读取error值。
 * Initialize the item. If initialization failed, read error.
 * @param  asset 资源对象 / Resource asset
 * @param  error 错误 / Error
 * @return 播放资源实例 / XLPlayerItem Instance
 */
- (instancetype)initWithAsset:(AVURLAsset *)asset error:(NSError **)error;
/**
 * 当前的资源地址
 * Current resource URL of the item
 */
@property (readonly, strong, nonatomic) NSURL *url;
/**
 * 当前的资源asset
 * Current resource asset of the item
 */
@property (readonly, strong, nonatomic) AVURLAsset *asset;
@end


